package cn.aku.d2_collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;

/*
 本类用于测试Collection接口
 */
public class Test1_Collection {
    public static void main(String[] args) {
        //创建Collection接口相关的对象
        Collection <Integer> c=new ArrayList<>();
        c.add(100);
        c.add(200);
        c.add(300);

        System.out.println(c);//直接打印查看集合中的元素
        //c.clear();清空元素
        System.out.println(c.hashCode());
        System.out.println(c.isEmpty());//判断集合是否为 空
        System.out.println(c.size());
        System.out.println(c.equals(200));//200和整个集合比较
        System.out.println(c.contains(200));
        System.out.println(c.remove(100));//移除100
        System.out.println(c);

        Object[] a = c.toArray();//集合中元素放入数组。
        System.out.println(a);
        System.out.println(Arrays.toString(a));
        System.out.println("============================");
        Collection <Integer> c2=new ArrayList<>();
        c2.add(1);
        c2.add(2);
        c2.add(3);
        c2.add(4);
        c2.add(5);
        System.out.println(c2);
        c.addAll(c2);//把c2接到c后面
        System.out.println(c);
        System.out.println(c.containsAll(c2));//判断存在

        c.retainAll(c2);//取交集
        System.out.println(c);
        c.removeAll(c2);//删除c集合中，属于c2集合的数据
        System.out.println(c);

        //遍历/迭代 集合
        /*
         迭代器，Iterator<E> iterator()
         1.获取迭代器 c.iterator()
         2.判断集合中是否有下个元素it.hasNest()
         3.获取当前迭代到的元素 it.next();
         */
        System.out.println(c2);
        Iterator<Integer> it = c2.iterator();
        //通过集合迭代器，循环获取集合中的每个元素
        while(it.hasNext()){
            //如果有下个元素，返回true hasNext()
            Integer num=it.next();
            System.out.println(num);
        }



    }
}
